package com.tennis.tennisreservation.service;

import com.tennis.tennisreservation.entity.Image;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * 图片服务接口
 * 定义图片相关业务逻辑
 */
public interface ImageService {

    /**
     * 上传图片
     * @param file 图片文件
     * @param type 图片类型（可选）
     * @return 图片信息
     */
    Image uploadImage(MultipartFile file, String type);

    /**
     * 根据ID获取图片
     * @param id 图片ID
     * @return 图片信息
     */
    Image getImageById(Long id);

    /**
     * 根据类型获取图片列表
     * @param type 图片类型
     * @return 图片列表
     */
    List<Image> getImagesByType(String type);

    /**
     * 分页查询图片
     * @param page 页码
     * @param size 每页大小
     * @param type 图片类型（可选）
     * @return 分页数据
     */
    Map<String, Object> getImageList(int page, int size, String type);

    /**
     * 删除图片
     * @param id 图片ID
     * @return 是否成功
     */
    boolean deleteImage(Long id);
}
